package br.com.controller;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import javax.faces.event.ActionEvent;

import br.com.model.Questionario;
import br.com.model.Usuario;

import br.com.persistence.PerguntaDao;
import br.com.persistence.QuestionarioDao;
import br.com.persistence.RespostaDao;

@ManagedBean(name = "cadQuestionario", eager = true)
@RequestScoped
public class CadQuestionario implements Cadastro {

	@ManagedProperty(value = "#{login.usuario}")
	private Usuario logado;
	private static Questionario questionario;
	private static boolean instanciado = false;

	public Usuario getLogado() {
		return logado;
	}

	public void setLogado(Usuario logado) {
		this.logado = logado;
	}

	public CadQuestionario() {
		if (!instanciado) {
			PerguntaDao dao = new PerguntaDao();
			setQuestionario(new Questionario());
			questionario.setPerguntas(dao.selectList());
			RespostaDao respDao = new RespostaDao();
			questionario.setRespostas(respDao.selectList());
			instanciado = true;
		}
	}

	public Questionario getQuestionario() {
		return questionario;
	}

	private void setQuestionario(Questionario quest) {
		questionario = quest;
	}

	@Override
	public void cadastrar(ActionEvent action) {
		System.out.println("executou metod cadastrar");
		QuestionarioDao dao = new QuestionarioDao();
		questionario.setUsuario(logado);
		boolean todasRespondidas = true;
		for (int i = 0; i < questionario.getPerguntas().size(); i++) {
			if (questionario.getPerguntas().get(i).getRespondido()
					.getIdResposta() == 0)
				todasRespondidas = false;
		}

		if (todasRespondidas)
			dao.insert(questionario);

	}

	public static void main(String[] args) {
		CadQuestionario cad = new CadQuestionario();
		System.out.println(cad.getQuestionario().getRespostas().size());
		System.out.println(cad.getQuestionario().getPerguntas().get(1)
				.getAlternativas().get(0).getResposta());
		System.out.println(cad.getQuestionario().getPerguntas().get(1)
				.getAlternativas().size());
	}

}
